package com.example.airole.speech.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;

/**
 * 语音识别配置
 */
@Data
@Configuration
@ConfigurationProperties(prefix = "airole.speech.recognition")
public class SpeechRecognitionConfig {
    
    /**
     * 是否启用语音识别服务
     */
    private boolean enabled = true;
    
    /**
     * 语音识别服务提供商 (vosk)
     */
    private String provider = "vosk";
    
    /**
     * Vosk配置
     */
    private VoskConfig vosk = new VoskConfig();
    
    /**
     * 默认语言
     */
    private String defaultLanguage = "zh-CN";
    
    /**
     * 支持的语言列表
     */
    private String[] supportedLanguages = {"zh-CN"};
    
    /**
     * 最大音频时长(秒)
     */
    private int maxAudioDuration = 300;
    
    /**
     * 最大音频文件大小(MB)
     */
    private int maxAudioSizeMB = 25;
    
    @Data
    public static class VoskConfig {
        /**
         * Vosk模型文件路径
         */
        private String modelPath = "D:/QiNiuYun/models/vosk-model-cn-0.22";
        
        /**
         * 采样率
         */
        private float sampleRate = 16000.0f;
        
        /**
         * 是否启用GPU加速
         */
        private boolean enableGpu = false;
        
        /**
         * 最大音频时长(秒)
         */
        private int maxAudioDuration = 300;
        
        /**
         * 识别超时时间(毫秒)
         */
        private int recognitionTimeout = 30000;
    }
}

